The availability of inexpensive microprocessors has caused a proliferation of microprocessor-based application systems, since the microprocessor enables the circuit designer to place a great deal of intelligence in the application system at little cost. However, this configuration has introduced a new cost into system development, and that is the cost of developing and maintaining application software. As applications become increasingly more sophisticated, the software required will become more complex and its development will become more costly.
To generate and debug sophisticated microprocessor software requires good tools. The basic and invaluable tools, such as assemblers, simulators, breadboards, etc., are well known and are available from microprocessor vendors. However, vendor supplied development systems which utilize prior art tools are ill-adapted to produce nontrivial amounts of high quality microprocessor software. Prior art microprocessor support systems which run on a large batch process time-shared computer are incapable of being directly connected to the application microprocessor.
The output of these systems is an object module which serves as an input to a microprocessor simulator or is used to produce a portable output, generally paper or magnetic tape. The microprocessor simulator runs on the batch process system and produces a crude indication of the real-time code execution by the application microprocessor. However, the simulator is not an exact replica of the application microprocessor and merely approximates its operation. Additionally, the simulator cannot reproduce the actual operating environment, such as the real world input/output that is applied to the application system. Therefore, the simulator is only effective in testing the software generated for logical consistency and not for actual utility on an operating application system.
Another type of microprocessor software development involves the use of a "Microcomputer Based Development System" (MBDS). In this situation, the MBDS contains a microprocessor which runs an operating system to support some small scale peripherals, a floppy disc for mass storage, and an In Circuit Emulator for testing the software. The disadvantages of this system are that the data base is small due to the limitations imposed by the floppy disc and the system also lacks portability. Additionally, the microprocessor lacks "computing power" and can only run a primitive operating system with limited file management and document production capabilities. Furthermore, operation of the application system must be terminated before the In Circuit Emulator can be plugged into the application system in place of the application system microprocessor. The Emulator will approximate the operation of this microprocessor and debugging of the application system entails stopping the application system operation whenever the MBDS microprocessor must process data. Thus, the MBDS is essentially a single user test system for testing application systems whose operation can be interrupted. This type of system is obviously inapplicable to situations where the application system operation is uninterruptable, such as a business communication system.